package org.hot100_2;

public class leetcode560 {
    public int subarraySum(int [] nums,int k){

        int n = nums.length;
        int [] preSum = new int[n+1];
        preSum[0]=0;

        for (int i = 0; i < n; i++) {
            preSum[i+1]=preSum[i]+nums[i];
        }

        int count  =0 ;

        for (int left = 0; left < n; left++) {
            //内循环的作用：遍历以left为开头的所有子数组
            for (int right = left; right <n; right++) {
                //使用right+1，不使用right：preSum[right+1]表示数组的前right项之和，如果使用preSum[right]，那么在遍历到边界时，会少计算一个子数组
                if (preSum[right+1]-preSum[left]==k){
                    count++;
                }
            }
        }

        return count;
    }
}
